package token

import (
	"context"
)

const (
	AppName = "token"
)

type Service interface {
	Login(context.Context, *LoginRequst) (*Token, error)         //登灵接口（额发Token)
	Logout(context.Context, *LoginOutRequst) error               //登灵接口（销毁Token)
	ValiateToken(context.Context, *ValiateToken) (*Token, error) //校验Token 是给內部中间层使用 身份校验层
}

type LoginRequst struct {
	Username string
	Password string
}

func NewLoginRequst() *LoginRequst {
	return &LoginRequst{}
}

func NewLoginoutRequst() *LoginOutRequst {
	return &LoginOutRequst{}
}

// 万一的Token滋露，不知道refresh_token，也没法推出
type LoginOutRequst struct {
	AccessToken  string `json:"access_token"`  //颁发给用户的访问令牌（需要用户携带token来访问接口）
	// RefreshToken string `json:"refresh_token"` //刷新令牌
}

type ValiateToken struct {
	AccessToken string `json:"access_token"`
}

func NewValiateToken(accessToken string) *ValiateToken {
	return &ValiateToken{
		AccessToken: accessToken,
	}
}
